Learning Objectives

After completing this lesson, you’ll be able to:

Resources

Improve Workspaces with Bookmarks

Bookmarks play an essential role in a well-styled workspace for many reasons, including these:

Bookmarks for Design

A bookmark is a great way of indicating that a particular section of a workspace is for a specific purpose. Subdividing a workspace this way often makes the layout more straightforward to follow.

As one user has put it, bookmarks are like paragraphs for your workspace!

Organizing a large workspace with bookmarks

The above workspace illustrates how to mark up different workspace sections using bookmarks. As you can see, subdividing bookmarks further by nesting one bookmark inside another is permitted.

Collapsible Bookmarks

You can click the small icon in the top-left corner of a bookmark to collapse it:

Collapsing bookmarks

Collapsing a bookmark means it is compressed down to the size of a single transformer, displaying none of the contents except for where data enters or exits the bookmark:

A collapsed bookmark

Clicking the icon a second time re-opens the bookmark to its previous size.

This functionality allows you to render large workspace sections in a much smaller area and only open them when editing is required.

For example, the section of the workspace displayed above might become this:

Many collapsed bookmarks to simplify a workspace

Re-opening a collapsed bookmark adjusts the workspace's layout, moving other transformers or bookmarks out of the way without overlap. Re-closing the bookmark causes the opposite to occur.

For example, if you expand bookmark three (Style) in the above screenshot, then bookmarks four and five move to one side to accommodate it. When you collapse bookmark three again, the reverse occurs to give the same compact layout as before. 

You can rename the input and output ports on collapsed bookmarks to help clarify the data entering and exiting:

Renaming an input port on a collapsed bookmark

You can do this by double-clicking the object, pressing F2, or using the Rename option on the context menu.

Bookmarks for Quick Access

The Workbench Navigator window lists all bookmarks. Each bookmark appears in order, and you can expand it to view its contents. It may include feature types, transformers, or nested bookmarks:

Viewing bookmarks in the Navigator

Clicking or double-clicking a bookmark in the Navigator selects it and brings it into view. Bookmarks both visually divide a workspace into sections and let you jump to different parts of that workspace.

In this way, bookmarks are like the chapter headings in a book!

Besides being a way to access bookmarks quickly, you can use the bookmarks in the Navigator to present your workspace. By clicking the first bookmark and then using the arrow keys on your keyboard, you can flip from bookmark to bookmark using animation in a way that would be very useful when showing the workspace as part of a presentation.

The order of bookmarks in that window is alphabetical, which may differ from the order in which you wish to present a workspace.

In that case, right-click on Bookmarks in the Navigator window and turn off the default option to "Sort Alphabetically."

Turning off Sort Alphabetical

Bookmarks can then be dragged up and down in the Navigator window to give the correct order. Expand a bookmark to include nested bookmarks in your tour.

Bookmarks for Editing

Bookmarks define a section of the workspace containing several objects. When editing a workspace without bookmarks, you can move objects by selecting the object or objects and dragging them to a new position.

However, when bookmarks divide a workspace, you can move objects by dragging the bookmark to a new position. When an object is inside the bookmark, it moves as the bookmark does.

Moving objects inside a bookmark

Using this technique, you can move large groups of objects around the workspace canvas to create a better layout. Objects inside a bookmark will move whether the bookmark is collapsed or expanded.

Note

Remember that one of the bookmark properties is labeled Contents and has the value "Move with Bookmark" or "Move Independently." The former allows you to move objects with the transformer; the latter causes objects to remain in position when you move a bookmark.

Bookmarks for Performance

When a workspace is run with Feature Caching turned on, features are cached at every transformer. As you can imagine, in larger workspaces, this leads to a lot of data being cached, sometimes unnecessarily:

Caching in a bookmark

Notice in the above screenshot that every transformer in the Prepare Data for Matching bookmark is being cached.

However, when a bookmark is collapsed, then caching only occurs on the bookmark output objects:

Caching on a bookmark

This feature means that data is cached only for the final transformer in the bookmark, saving considerable time and resources:

No caching in a bookmark

Note

You want to avoid putting a workspace into production when caching is turned on, regardless of whether your bookmarks are collapsed. This technique is only recommended in workspace creation's design, authoring, and testing phases.

Additionally, due to operating system file naming restrictions, you are limited to storing a few hundred caches per workspace, so collapsing bookmarks can help you avoid hitting that number in large workspaces.

Exercise

Now that Jennifer's workspace is nearly done, she'd like to give it some finishing touches before showing it to her colleague Fatima for approval.

1) Open Starting Workspace

She opens the starting workspace (C:\FMEData\Workspaces\UseDataIntegrationBestPractices\improve-workspaces-with-bookmarks.fmw) with FME Workbench (2025.0.1 or later).

2) Collapse Addresses Cache

She's confident the attribute transformers in the Prepare addresses to join bookmark are working correctly. Therefore, she'd like to collapse that bookmark to reduce the number of generated feature caches when she tests the workspace.

She finds the Prepare addresses to join bookmark and clicks the upward-pointing arrow in the top left to collapse the bookmark:

Collapsing a bookmark

3) Rename Collapsed Bookmark Ports

The bookmark is now collapsed and takes up less room on the canvas. But she doesn't like the names of the ports; they could be more contextual.

So she right-clicks each and renames them to Addresses and Block-Level Addresses, respectively:

Renamed ports

Now it's a clearer what kind of data is going in and out of this bookmark.

Note

Collapsing bookmarks and renaming ports like this can help you identify potential custom transformers to build. In this case, Jennifer could build a general-purpose custom transformer that takes address strings in and returns block-level addresses. Then she could export it as a linked custom transformer and use the same definition in any workspace that works with the crime data.

4) Move Bookmarks

Now that Jennifer has bookmarks to work with, she decides she'd rather keep the default port order on the FeatureJoiner.

She switches the port order back by right-clicking the FeatureJoiner's Right port and choosing Move Down:

Changing port order back

Then she clicks and drags to move the Crime CSV bookmark below the Prepare addresses to join bookmark. Now the port order is back to default and there are no crossed connection lines:

Reordered bookmarks

5) Set Workspace Metadata

Because she plans to share this workspace with her colleagues, who will also be responsible for editing it, Jennifer wants to fill in some metadata details about her workspace.

She finds the Workspace Parameters section in the Navigator, expands it, and double-clicks Name. Then she fills out the Workspace Parameters dialog to provide these details:

Setting workspace name and other metadata

She chooses to check Use Markdown to format the workspace Overview. This option allows simple formatting and is particularly useful when publishing templates or custom transformers to the FME Hub.

She also fills in the History tab to keep track of her edits:

History tab

She clicks OK to finalize her Workspace Parameters.

6) Give a Tour of the Workspace

Now that the workspace is finished, she's ready to show it to Fatima for approval.

She would like to give a quick, organized tour of the workspace. To facilitate this goal, she will use the Navigator bookmark browsing functionality.

She expands the Bookmarks section in the Navigator:

Expanded Bookmarks section in the Navigator

When she clicks one of these bookmarks. FME pans and zooms to display it.

However, in the current setup, she'd have to remember which bookmark she wanted to show next and click them out of order.

To simplify the tour, she renames each bookmark with a number to put them in order in the Navigator:

Renamed bookmarks

Now she can click through each in turn to show Fatima the order of processing and logic of the workspace.

Note

This method works OK, but consider that if you make changes, it can be annoying to rename every bookmark. You could use a numbering system like 1.1, 1.2, 2.1, 2.2, or you can just pan around the workspace if you want to give a tour.

Fatima is able to understand the workspace quickly thanks to Jennifer's improvement of its style! She approves it for continued work.